iT邦幫忙

2025 iThome 鐵人賽

DAY 12
0
自我挑戰組

30 天工程師雜學之旅系列 第 12

MCP-6 MCP 系列最終篇:從 Demo 到產品級應用

  • 分享至 

  • xImage
  •  

在前三篇,我們完成了一個可運行的 簡易 MCP Server

  1. 用 FastAPI + NASA API 做 baseline
  2. 加入 fastapi_mcp,把 API 包裝成 MCP 工具
  3. 用 VS Code 連線並實測 AI 如何 discover 與呼叫工具

完整程式碼(包含簡單的測試)已經放在 GitHub 👉 nasa-app-mcp-demo。這個專案的目標很單純:用真實可跑的程式碼,幫助大家理解 MCP 的原理與實際使用方式


我們已經完成的簡易架構

flow

這就是我們到目前為止搭建起來的「最小可行 MCP Server」:

  • End User 提問
  • LLM 判斷需要呼叫外部工具
  • MCP Client(VS Code copilot)發現並呼叫工具
  • MCP Server 執行工具邏輯,連到 NASA API 拿資料

從 Demo 到產品級,可以怎麼延伸?

我們的範例只是展示了 MCP 的最小用法。但如果要走向產品級應用,還有很多方向可以延伸:

1. 資料來源延伸:

  • 連接私人 Database:例如連到公司內部的 PostgreSQL / MongoDB,讓 LLM 可以用工具查詢內部資料。
  • 接內部 API:不只 NASA,也可以是 CRM、ERP 或醫療系統的 API。

2. 效能與穩定性:

  • 快取層(Cache):避免重複呼叫外部 API,減少延遲與流量成本。
  • 批次查詢:將多次請求合併,提升效率。

3. 任務處理模式:

  • Queue & Background Jobs:長任務不要卡住回應,例如影像處理、資料分析,可以交給背景工作處理,再回傳 task_id 給 LLM。
  • 排程任務:透過排程器(如 Celery Beat、APScheduler)定期更新資料,讓工具隨時可用。

4. 觀測與監控:

  • 結構化日誌:記錄每次工具呼叫(參數、結果、耗時)。
  • Metrics:用 Prometheus / Grafana 監控工具使用情況與錯誤率。
  • Tracing:用 OpenTelemetry 追蹤從 MCP 呼叫到外部 API 的整條鏈路。

5. 安全與管控:

  • 權限控制:限制哪些使用者或角色可以呼叫哪些工具。
  • 速率限制:避免被濫用或過度消耗資源。
  • 審計(Audit Log):保存誰在什麼時候呼叫了什麼工具,方便合規需求。

6. 與 LLM 的結合方式:

  • MCP 本身是「工具介面」,下一步可以思考如何把工具的 結果整合進上下文,讓 LLM 做更進階的推理與決策。
  • 也可以建立「工具編排」:LLM 透過 MCP 先呼叫一個工具,再根據結果呼叫另一個,形成工作流程。

總結

這一系列文章,我們:

  • 從一個簡單的 FastAPI + NASA API 開始
  • 加入 fastapi_mcp,讓 API 變成 AI 可發現的工具
  • 用 Kiro / VS Code 連線實測工具呼叫
  • 最後探討了如何延伸到產品級應用

MCP 讓我們能夠用很標準化的方式,告訴 LLM「我有哪些工具,你該怎麼用」。它的價值不只是 Demo,而是提供一個 可擴展的 Plug-and-Play 工具化框架,未來可以整合到各種場景:資料庫、內部系統、自動化流程。

👉 到這裡,我們的 MCP 系列就告一段落了。希望透過這個實戰示範,大家能對 MCP 有更清晰的理解,也能激發你把 MCP 用在自己實際的專案中。


上一篇
MCP-5 用 VS Code 連線使用 MCP 工具
下一篇
k8s雜記-1 Kubernetes 管理資源的兩種方式:Imperative vs Declarative
系列文
30 天工程師雜學之旅22
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言